<template>
  <div class="bar-echart">
    <XtEchars :options="options" width="100%"></XtEchars>
  </div>
</template>

<script setup lang="ts">
import * as echarts from "echarts"
import { EChartsOption } from "echarts"
import { computed, defineProps } from "vue"
import XtEchars from "@/base_ui/echars"
const props = defineProps<{
  xLabels: string[]
  yLabels: number[]
}>()

const options = computed<EChartsOption>(() => {
  return {
    xAxis: {
      data: props.xLabels,
      axisLabel: {
        inside: true,
        color: "#fff",
      },
      axisTick: {
        show: false,
      },
      axisLine: {
        show: false,
      },
      z: 10,
    },
    yAxis: {
      axisLine: {
        show: false,
      },
      axisTick: {
        show: false,
      },
      axisLabel: {
        color: "#999",
      },
    },
    dataZoom: [
      {
        type: "inside",
      },
    ],
    series: [
      {
        type: "bar",
        showBackground: true,
        itemStyle: {
          color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
            { offset: 0, color: "#83bff6" },
            { offset: 0.5, color: "#188df0" },
            { offset: 1, color: "#188df0" },
          ]),
        },
        emphasis: {
          itemStyle: {
            color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
              { offset: 0, color: "#2378f7" },
              { offset: 0.7, color: "#2378f7" },
              { offset: 1, color: "#83bff6" },
            ]),
          },
        },
        data: props.yLabels,
      },
    ],
  }
})
</script>
<style lang="less" scoped></style>
